Флаги не меняются.
Команда:
XLAT translate-table
Логика:
AL = (BX + AL)
Команда XLAT переводит байт, согласно таблице преобразований. Указатель 256-байтовой таблицы преобразований находится в BX. Байт, который нужно перевести, расположен в AL. После выполнения команды XLAT байт в AL заменяется на байт, смещенный на AL байтов от начала таблицы преобразований.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
translate-table | 11 | 1 | 1 | XLAT SINE_TABLE |
Примечания :
Таблица преобразований может содержать менее 256 байтов. Операнд, т.е. translate-table, является необязательным, поскольку указатель таблицы должен быть загружен в BX еще до начала выполнения команды.
Следующий пример иллюстрирует перевод десятичного числа (от 0 до 15) в соответствующую "цифру" шестнадцатеричной системы счисления:
LEA BX,HEX_TABLE ;указатель таблицы засылаем в BX, MOV AL,DECIMAL_DIGIT ;а переводимую цифру - в AL XLAT HEX_TABLE ;переводим ;теперь в AL находится ASCII-код . ;соответствующей цифры ;шестнадцатеричной системы HEX_TABLE DB '0123456789ABCDEF'